package com.alquiler.services;

import java.util.List;

import com.alquiler.dao.CanchaDao;
import com.alquiler.dto.ItemDto;
import com.alquiler.entities.Cancha;
import com.alquiler.managers.SimpleEntityManager;


public class CanchaService {
	
	private CanchaDao canchaDao;	
	
	public CanchaService() {		
		this.canchaDao = new CanchaDao(SimpleEntityManager.getInstance().getEntityManager());		
	}
	
	
	public List<Cancha> findAll(){
        return canchaDao.findAll();
	}
	
	public Cancha findById(Integer idCancha){
        return canchaDao.findById(idCancha);
	}
	
	public Cancha findByNombre(String nombreCancha){
		Cancha cancha = null;
		try{
			cancha = canchaDao.findByNombre(nombreCancha);
		}catch (Exception e) {
			return null;
		}
        return cancha;
	}
	
	public List<Cancha> findCanchasDisponibles(){
        return canchaDao.findCanchasDisponibles();
	}
	
	public void saveCancha(Cancha cancha){
		
		if(cancha.getSede() != null){
			cancha.setSede(new SedeService().findById(cancha.getSede().getIdSede()));			
		}
				
		try{
            SimpleEntityManager.getInstance().beginTransaction();	          
            canchaDao.save(cancha);
            SimpleEntityManager.getInstance().commit();
        }catch(Exception e){
            e.printStackTrace();
            SimpleEntityManager.getInstance().rollBack();
        }		
	}
	
	public void updateCancha(Cancha cancha){
		
		cancha.setSede(new SedeService().findById(cancha.getSede().getIdSede()));
		
		try{
			SimpleEntityManager.getInstance().beginTransaction();
			canchaDao.update(cancha);				
		    SimpleEntityManager.getInstance().commit();
        }catch(Exception e){
            e.printStackTrace();
            SimpleEntityManager.getInstance().rollBack();
        }
		
	}
	
	
	public void deleteCancha(Cancha cancha) {
		try{
				
			SimpleEntityManager.getInstance().beginTransaction();
			canchaDao.remove(cancha);	
			SimpleEntityManager.getInstance().commit();
		  
        }catch(Exception e){        	
            SimpleEntityManager.getInstance().rollBack();       
        }
		
	}
	
	public List<ItemDto> getCanchasBySede(Integer idSede){		
		return canchaDao.getCanchasBySede(idSede);		
	}

}
